#include <iostream>
#include <stdio.h>
#include <string.h>
//#include <math.h>
using namespace std;

int tt[1100], pt; // up to 1024
int k;
int width;
int flag[1100];

void output()
{
    int i;

    for (i=1; i<width; ++i)
    	printf("%d ", tt[i]);
   	printf("%d\n", tt[i]);
    	
}    

bool check()
{
    bool yes;
    int i;
    yes = true;
    for (i=1; i<=width; ++i)
    	if (tt[i] != width-i+1) 
     	{
     	    yes = false;
     	    break;
        }        
    if (yes)
    {
        for (i=1; i<=width; ++i)
        	tt[i] = i;
       	flag[width] = 1;
       	tt[width]--;
       	return true;
    }   
    return false; 
    
}    
int main()
{
	int n, i;
	scanf("%d", &n);
	while (n-->0)
	{
	    scanf("%d%d", &width, &k);
	    
	    memset(tt, 0, sizeof(tt));
	    memset(flag, 0, sizeof(flag));  // 0 for used
	    for (i=1; i<=width; ++i)
	    	scanf("%d", tt+i);
	    
        pt = width;	
        if ( !check() )  flag[tt[pt]] = 1;
        
    	while (k>0)
    	{
    	    ++tt[pt];
    	    if (pt>width)
    	    {
    //	        output();
     			--k;
     			if (k==0) break;
    	        --pt;
    	        if ( !check())
     	            flag[tt[pt]] = 1;
    	    }    
    	    else if (tt[pt]>width)
    	    {
    	        --pt;
    	        flag[tt[pt]] = 1;
    	    }    
    	    else if (flag[tt[pt]] == 1)  
    	    {
    	        flag[tt[pt]] = 0;
    	        pt++;
    	        tt[pt] = 0;
    	    }    
    	}    
    	output();
	    	
	    	
	    
	}    
    
    return 0;
}    


